1. Field of the Invention
The present invention relates generally to servo control systems used for positioning read/write transducers in data storage devices, and more particularly, to the use of snake-in-the-box codes for reliable identification of tracks in servo fields of a disk drive.
2. Description of Related Art
It is well known in the art to store data on magnetic or optical disk drives on one or more tracks of predetermined format disposed on a disk-shaped recording media. The data is written to and read from the tracks using one or more transducers, which typically comprise read/write heads. Reading data from a desired one of the tracks on the disk surfaces requires knowledge of the read/write head position relative to the track as the disk rotates and the head is moved across the disk, and requires precise centering of the head over the disk track. Conventionally, the read/write head is mounted on a head positioning assembly that is moved by a servo control loop.
The servo control loop controls movement of the head positioning assembly across the disk surface to move the read/write head from track to track (track seeking) and, once over a selected track, to maintain the read/write head in a path over the centerline of the track (track following). Centering the read/write head over a track permits accurate reading and recording of data in the track.
In most devices, the servo control loop is a closed loop system that utilizes servo information obtained from the disk surface to provide feedback for the track seeking and track following functions. Some devices store servo information on a single, dedicated disk surface (known as a dedicated servo system), while other devices store servo information between the data regions of the disk surface (known as an embedded servo system).
In embedded servo systems, the servo information is stored in a servo sector that is usually comprised of the following fields:
1. an Automatic Gain Control (AGC) field that can be represented a string of ones;
2. a Servo Identification (SID) field that is comprised of a pattern of zeros and ones, combining synchronization properties, error tolerance, and other information, such as index, non-index, odd or even sector, etc.;
3. a Track Identification (TID) field that is usually a Gray-encoded track position value, and may also contain redundant bits for error detection and correction (see U.S. Pat. No. 5,617,536, issued April 1997, to D. A. Freitas, L. J. Serrano and M. Yu, and entitled xe2x80x9cMethod and Apparatus for Servo Control with Error Detection of Gray (Pennington) Code Used for Servo Track ID,xe2x80x9d which patent is incorporated by reference herein); and
4. a position error signal (PES) field that is usually comprised of four different bursts (represented as strings of ones) whose function is setting the head on track through an integration process.
In the prior art, the TID field is Gray encoded because the read/write head is not necessarily on track yet when the TID is read (as stated above, this function is accomplished by the PES field in the servo sector). In a worst case situation, the read/write head may be in the middle of two adjacent tracks. Thus, it is convenient that TIDs for adjacent tracks be as close as possible to each other.
Gray codes accomplish this property, since the (Hamming) distance between Gray-encoded TIDs of adjacent tracks is exactly 1. Any ambiguity with respect to correct track position when the head is positioned between two tracks is resolved by the PES, since the burst configuration changes for even and odd tracks.
However, there are problems with the use of Gray codes for TIDs, in that Gray codes are not immune to bit errors caused by disk defects. As a result, bit errors in a TID, for both on-track as well as off-track situations, may be uncorrected, such that the TID identifies the wrong track.
For example, suppose a set of four tracks A, B, C, and D have the following TIDs:
Suppose a single bit error occurs, and the TID for track A is misread as 10 rather than 00. The disk drive will incorrectly believe that the read/write head is on track C, and not track A, which is two tracks away.
The problem is difficult to resolve when traditional Gray codes are used, since Gray-encoded TIDs for neighboring tracks have a small minimum distance, mainly a distance of 1, while error detection and correction codes try to use a large minimum distance.
Therefore, there is a need in the art for techniques that eliminate such errors. Specifically, there is a need in the art to provide improved error detection and correction capabilities through the use of novel encoding schemes. To this end, the present invention uses xe2x80x9csnake-in-the-boxxe2x80x9d (SITB) codes for TIDs, such that adjacent TIDs are at a distance of exactly 1 (like traditional Gray codes) while non-adjacent TIDs words are at a distance of at least 2.
SITB codes are described in the prior art, such as found in the publication G. Paterson and J. Tuliani, xe2x80x9cSome New Circuit Codes,xe2x80x9d IEEE Transactions on Information Theory, 1305-1309 (1998), which publication is incorporated by reference herein. However, the prior art has not used SITB codes for TIDs in disk drives. In addition, the prior art uses SITB codes that are of a combinatorial type, wherein, given a code of length n, it is desirable to obtain a snake-in-the box code with as many codewords as possible. The present invention, on the other hand, is more interested in simple encoding and decoding logic than in maximizing the number of codewords for a given length.
To minimize the limitations in the prior art described above, and to minimize other limitations that will become apparent upon reading and understanding the present specification, the present invention uses a xe2x80x9csnake-in-the-boxxe2x80x9d (SITB) code to encode a track identifier (TID) in a servo sector of a disk drive to identify a particular track on the disk surface. The SITB code describes the longest possible vector that can fit into a finite space, and comprises a type of difference-preserving code. When an SITB code is used for the TID, any single bit error in the TID will be detected. The Hamming distance for TIDs of adjacent tracks is 1 with a SITB code, as with a Gray code. However, for TIDs of tracks that are not adjacent, the Hamming distance is at least 2 with a SITB code.